Field of the Invention
Embodiments of the present invention generally relate to computer-aided design (CAD) and, more specifically, to adaptively joining meshes.
Description of the Related Art
A wide variety of graphics-oriented software applications are currently available to end-users, including computer-aided design (CAD) applications, computer graphics applications, and three-dimensional (3D) modeling applications, among others. Many of these software applications allow an end-user to create and modify 2D and/or 3D graphics designs. For example, an end-user may interact with a 3D modeling application to add geometry to a design, remove geometry from a design, or modify existing geometry. However, conventional 3D modeling applications are unable to satisfactorily perform advanced operations, such as joining two or more designs. Consequently, such operations typically must be performed by manually modifying a mesh of primitives (e.g., triangles) included in the design.
Conventionally, joining two meshes requires the end-user to painstakingly prepare and modify each mesh. For example, joining meshes may require the end-user to manually remove surface(s) at which the meshes are to be joined while at the same time ensuring that the boundaries at which the meshes are to be joined include exactly the same number of vertices. Such preparations are particularly time-consuming when meshes having different triangle and vertex densities are joined. Additionally, after joining the meshes, the user typically must repair mesh distortions and irregularities produced during the joining process. Moreover, even after attempting repairs of mesh distortions, joined regions of the resulting design often include a twisted mesh of irregular triangles having undesirable characteristics (e.g., large opening angles). Further, such irregularities may produce numerical and computational issues and/or produce visual artifacts during subsequent processing of the mesh.
As the foregoing illustrates, there is a need in the art for a more effective way to enable meshes of primitives to be joined together.